package com.klm.service;

import com.klm.entity.TranslatePlatformConfigEntity;
import java.util.List;

public interface TranslatePlatformConfigService {
    // 根据ID获取平台配置
    TranslatePlatformConfigEntity getById(String id);

    // 获取所有平台配置
    List<TranslatePlatformConfigEntity> listAll();

    // 保存平台配置
    void save(TranslatePlatformConfigEntity config);

    // 更新平台配置
    void update(TranslatePlatformConfigEntity config);

    // 删除平台配置
    void delete(String id);

    // 启用指定平台
    void enablePlatform(String platformCode);

    // 禁用指定平台
    void disablePlatform(String platformCode);

    // 更新平台字节数阈值
    void updateByteThreshold(String platformCode, Long newThreshold);

    // 更新平台QPS限制
    void updateQpsLimit(String platformCode, Integer newQpsLimit);

    // 更新平台优先级
    void updatePriority(String platformCode, Integer newPriority);

    // 更新平台重置规则
    void updateResetRule(String platformCode, Integer resetType, Integer resetDay);

    // 检查平台是否可用（检查状态、QPS、字节数阈值等）
    boolean isPlatformAvailable(String platformCode);

    // 获取所有可用的平台代码列表
    List<String> getAvailablePlatforms();

    // 根据优先级和可用性选择最佳平台
    String selectBestPlatform();
}
